import Vue from 'vue';
import Router from 'vue-router';
// import Login from '@/pages/Login';
// import Layout from '@/pages/Layout';
//  路由拦加载
const Login=()=>import('@/pages/Login');
const Layout=()=>import('@/pages/Layout');
// 菜单管理
import Menu from '@/pages/menu/Index';
import MenuAdd from '@/pages/menu/Add';
import MenuEdit from '@/pages/menu/Edit';
// 角色管理
import Role from '@/pages/role/Index';
import RoleAdd from '@/pages/role/Add';
import RoleEdit from '@/pages/role/Edit';
// 管理员
import Admin from '@/pages/admin/Index';
import AdminAdd from '@/pages/admin/Add';
import AdminEdit from '@/pages/admin/Edit';
// 分类管理
import Category from '@/pages/category/Index';
import CategoryAdd from '@/pages/category/Add';
import CategoryEdit from '@/pages/category/Edit';
// 规格管理
import Specs from '@/pages/specs/Index';
import SpecsAdd from '@/pages/specs/Add';
import SpecsEdit from '@/pages/specs/Edit';
// 商品管理
import Goods from '@/pages/goods/Index';
import GoodsAdd from '@/pages/goods/Add';
import GoodsEdit from '@/pages/goods/Edit';
import RichText from '@/pages/goods/RichText';

// echarts图表库
import Bar from '@/pages/charts/Bar';
import Pie from '@/pages/charts/Pie';
import Line from '@/pages/charts/Line';

import Home from '@/pages/Home';

Vue.use(Router);

const router = new Router({
  routes: [
    {
      path: '/',
      component: Layout,
      // 路由重定向
      redirect:'/home',
      // 二级路由
      children:[
        {
          path:'/home',
          component:Home,
          meta:{
            title:'销售业绩统计'
          }
        },
        {
          path:'/menu',
          component:Menu,
          meta:{
            title:'菜单列表'
          }
        },
        {
          path:'/menu/add',
          component:MenuAdd,
          meta:{
            title:'菜单添加'
          }
        },
        {
          path:'/menu/:id',
          component:MenuEdit,
          meta:{
            title:'菜单编辑'
          }
        },
        {
          path:'/role',
          component:Role,
          meta:{
            title:'角色列表'
          }
        },
        // /role/add
        // 路由规则书写顺序: 动态路由写在最后边
        {
          path:'/role/add',
          component:RoleAdd,
          meta:{
            title:'角色添加'
          }
        },
        {
          path:'/role/:id',
          component:RoleEdit,
          meta:{
            title:'角色编辑'
          }
        },
        {
          path:'/admin',
          component:Admin,
          meta:{
            title:'管理员列表'
          }
        },
        {
          path:'/admin/add',
          component:AdminAdd,
          meta:{
            title:'管理员添加'
          }
        },
        {
          path:'/admin/:id',
          component:AdminEdit,
          meta:{
            title:'管理员编辑'
          }
        },
        {
          path:'/category',
          component:Category,
          meta:{
            title:'分类列表'
          }
        },
        {
          path:'/category/add',
          component:CategoryAdd,
          meta:{
            title:'分类添加'
          }
        },
        {
          path:'/category/:id',
          component:CategoryEdit,
          meta:{
            title:'分类编辑'
          }
        },
        {
          path:'/specs',
          component:Specs,
          meta:{
            title:'规格列表'
          }
        },
        {
          path:'/specs/add',
          component:SpecsAdd,
          meta:{
            title:'规格添加'
          }
        },
        {
          path:'/specs/:id',
          component:SpecsEdit,
          meta:{
            title:'规格编辑'
          }
        },
        {
          path:'/goods',
          component:Goods,
          meta:{
            title:'商品列表'
          }
        },
        {
          path:'/goods/add',
          component:GoodsAdd,
          meta:{
            title:'商品添加'
          }
        },
        {
          path:'/goods/:id',
          component:GoodsEdit,
          meta:{
            title:'商品编辑'
          }
        },
        {
          path:'/richtext',
          component:RichText
        },
        {
          path:'/bar',
          component:Bar,
          meta:{
            title:'柱状图演示'
          }
        },
        {
          path:'/pie',
          component:Pie,
          meta:{
            title:'饼状图演示'
          }
        },
        {
          path:'/line',
          component:Line,
          meta:{
            title:'折线图演示'
          }
        }
      ]
    },
    {
      path: '/login',
      name: 'Login',
      component: Login,
      meta:{
        title:'管理员登录'
      }
    },
    // 404路由
    {
      path:'**',
      redirect:'/home'
    }
  ]
});
// 添加一个全局的路由导航守卫: 登录拦截
router.beforeEach((to, from, next) => {
  // 如果to.path!='/loign'; 
  if(to.path!='/login'){
      // 判断登录状态  JSON.parse('{}')  null
      const userInfo=JSON.parse(sessionStorage.getItem('userinfo')||'{}');
      //没有登录
      if(!userInfo.token){
         // 重定向到login
        return next('/login');
      }
      // 登录状态
      return next();
  }
  next();
});

export default router;
